home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
parcs
/
parcs.lha
/
sample
/
send.parcs
< prev
next >
Wrap
Text File
|
1992-06-08
|
990b
|
48 lines
defdomain from0to9 int{0..9}.
defdomain from0to1 int{0..1}.
send([S,E,N,D,M,O,R,Y],[R1,R2,R3,R4]) :-
from0to9(S,E,N,D,M,O,R,Y),
from0to1(R1,R2,R3,R4),
alldif([S,E,N,D,M,O,R,Y]),
/* S!=E,S!=N,E!=N,S!=D,S!=M,S!=O,S!=R,S!=Y,*/
S!=0,
M!=0,
R2+S+M = O+10*R1,
R3+E+O = N+10*R2,
R4+N+R = E+10*R3,
D+E = Y+10*R4,
R1==M.
defdomain from1to5 int{1..5}.
houses([N1,N2,N3,N4,C5,C1,C2,C3,C4,C5,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5,D1,D2,D3,D4,D5]) :-
from1to5(N1,N2,N3,N4,C5,C1,C2,C3,C4,C5,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5,D1,D2,D3,D4,D5),
N1=C2,N2=A1,N3=P1,N4=D3,N5=1,D5=3,P3=D1,C1=D4,P5=A4,P2=C3,
C1=C5+1,
plusorminus1(A3,P4),
plusorminus1(A5,P2),
plusorminus1(1,C4),
alldif([N1,N2,N3,N4,N5]),
alldif([C1,C2,C3,C4,C5]),
alldif([P1,P2,P3,P4,P5]),
alldif([A1,A2,A3,A4,A5]),
alldif([D1,D2,D3,D4,D5]).
plusorminus1(X,Y) :- X = Y-1.
plusorminus1(X,Y) :- X = Y+1.
alldif([]).
alldif([A|X]) :- different(A,X),alldif(X).
different(A,[]).
different(A,[B|X]) :- A!=B ,different(A,X).